//////////////////////////////////////////////////////////////////////
// TextureHelper.h
//
// SHEN Fangyang
// me@shenfy.com
//
// Copyright (C) SHEN Fangyang, 2011, All rights reserved.
//////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////
//  Brief Description
//
//	Texture creation helper functions
//
//////////////////////////////////////////////////////////////////////
#pragma once
#include <Texture.h>
#include <TextureFormat.h>

namespace grflib
{
	namespace engine
	{
		namespace aux
		{
            namespace texture_helper
            {
                HRESULT Create2DTextureFromFile(const char *textureName, 
                    const TCHAR *fileName,
                    TextureSpec::BindTarget bindTarget,
                    TextureSpec::TextureUsage usage,
                    boost::shared_ptr<grflib::engine::core::CTexture2D> &pTexture);

                HRESULT CreateCubeTextureFromStripFile(const char *textureName, 
                    const TCHAR *fileName,
                    TextureSpec::BindTarget bindTarget,
                    TextureSpec::TextureUsage usage,
                    boost::shared_ptr<grflib::engine::core::CTextureCube> &pTexture);

                HRESULT Create3DTextureFromVStripFile(const char *textureName, 
                    const TCHAR *fileName,
                    const UINT sliceHeight,
                    TextureSpec::BindTarget bindTarget,
                    TextureSpec::TextureUsage usage,
                    boost::shared_ptr<grflib::engine::core::CTexture3D> &pTexture);

            }
		} //namespace aux
	} //namespace engine
} //namespace grflib